package com.model;

import com.model.math.Point3D;

/**
 * 包围盒类
 * 用于表示3D模型的外包围盒
 */
public class BoundingBox {
    private Point3D min;  // 包围盒最小点坐标
    private Point3D max;  // 包围盒最大点坐标
    
    /**
     * 构造函数
     * @param min 包围盒最小点坐标
     * @param max 包围盒最大点坐标
     */
    public BoundingBox(Point3D min, Point3D max) {
        this.min = min;
        this.max = max;
    }
    
    /**
     * 获取包围盒的最小点坐标
     */
    public Point3D getMin() {
        return min;
    }
    
    /**
     * 获取包围盒的最大点坐标
     */
    public Point3D getMax() {
        return max;
    }
    
    /**
     * 获取包围盒的宽度（X轴方向的长度）
     */
    public double getWidth() {
        return max.x - min.x;
    }
    
    /**
     * 获取包围盒的高度（Y轴方向的长度）
     */
    public double getHeight() {
        return max.y - min.y;
    }
    
    /**
     * 获取包围盒的深度（Z轴方向的长度）
     */
    public double getDepth() {
        return max.z - min.z;
    }
} 